/*
 *
 *
 *
 */
#include <iostream>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_rotozoom.h>

#ifndef _SPRITE_H_
#define _SPRITE_H_

using namespace std;

class Sprite
{
    protected:
    
    string fileName;
    double angle;
    double zoom;
    double x,y;                        /*posição x,y da sprite na janela*/
    SDL_Surface* surface;
    SDL_Surface* surfaceRotoZoom;
    SDL_Rect rectangle;             /*retangulo da sprite na janela*/
    SDL_Rect rectRotoZoom;          /*retangulo da sprite rotacionada ou com zoom na janela*/

    public:
    
    Sprite(void);
    Sprite(const Sprite& sprite);
    Sprite(string fileName, double x, double y);
    Sprite & operator=(const Sprite &sprite);
    ~Sprite(void);
    void render(SDL_Surface *screen);
    void updatePos(double x, double y);
    SDL_Rect getRect(void);
    bool sphereCollidesWith(Sprite *sprite);
    bool boxCollidesWith(Sprite *sprite);
    void setZoom(double zoom);
    void setRot(double angle);
    
};

#endif
